//引入express模块
var express = require('express');
var bodyParser = require('body-parser');

//整合mongodb数据库
// 首先引入 mongoose 这个模块
var mongoose = require('mongoose');
// 然后连接对应的数据库：mongodb://localhost/test
// 其中，前面那个 mongodb 是 protocol scheme 的名称；localhost 是 mongod 所在的地址；
// 端口号省略则默认连接 27017；test 是数据库的名称
// mongodb 中不需要建立数据库，当你需要连接的数据库不存在时，会自动创建一个出来。
// 关于 mongodb 的安全性，mongodb 我印象中安全机制很残废，用户名密码那套都做得不好，更
// 别提细致的用户权限控制了。不过不用担心，mongodb 的默认配置只接受来自本机的请求，内网都连不上。
// 当需要在内网中为其他机器提供 mongodb 服务时，或许可以去看看 iptables 相关的东西。
mongoose.connect('mongodb://localhost/test');

//定义模型user
var User = mongoose.model('User',{
  nickname : String,
  username : String,
  password : String
});

//创建一个对象
var lmj = new User({ nickname:'lmj', username:'admin', password:'123456'});

User.findOne({username:'admin'}, function(err,user){
  console.log(' find admin : %s', user );
  if(!user){
    //初始化保存对象
    lmj.save(function(err){
      if (err) console.log(' save admin user failed. ');
      console.log(' save admin user success. ');
    });
  }else{
    //已初始化过
    console.log('admin user already exists.');
  }
});


//
var app = express();

var path = require('path');

//设置静态文件目录
app.use(express.static(path.join(__dirname,'publish')));
//设置body接收,下面设置才能接收
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true}));


//所有的请求都会经过all方法，一般用来定义中间件
// app.all('*',function(req,res){
//   console.log('this is all method');
//   res.writeHead(200,{ 'content-Type':'text/html;charset=utf-8' });
// });

app.get('/',function(req,res){
  //跳转到login.html
  res.redirect('login.html');
  // res.send('index.html');
});

//登入方法
// app.get('/signin',function(req,res){
//   // 从 req.query 中取出我们的参数，这里只允许取head中的参数，post方法则从body中取参数
//   var username = req.query.username;
//   var password = req.query.password;
//   console.log('username=%s,password=%s',username,password);
//   res.send('get success.');
// });

//验证用户登录
app.post('/signin',function(req,res){
  // 从 req.query 中取出我们的参数，这里只允许取head中的参数，post方法则从body中取参数,express默认不处理body,需要中间件body-parser
  var username = req.body.username;
  var password = req.body.password;
  console.log('username=%s,password=%s',username,password);
  //到数据库查找用户
  User.findOne({username:username, password:password}, function(err,user){
    console.log('login ...... \n' + user);
    if(user){
      res.send('login success.');
    }else{
      res.send('login failed.');
    }
  });
});

app.listen(3000,function(){
  console.log('app is listening at port 3000.');
});



















